#include <stdio.h>
#include <string.h>
 
 void test(void *a)
 {
 	printf("sizeof(void) === %d \n", sizeof(*a));	// output: 1
 }

int main()
{
	char *a = "12345";
	test(a);
	char b[6] = "123";
	char c[6] = "123456";
	printf("strlen(a) =  %d \n", strlen(a));	// 5
	printf("strlen(b) =  %d \n", strlen(b));	// 3
	printf("strlen(c) =  %d \n", strlen(c));	// 9  not sure, because there is no '\0';

	printf("sizeof(a) =  %d \n", sizeof(a));	// 8, the size of pointer
	printf("sizeof(b) =  %d \n", sizeof(b));	// 6, the size of array
	printf("sizeof(c) =  %d \n", sizeof(c));	// 6, the size of array, not the length of elements

    printf("%d \n",sizeof(char));  // 1个字节，8个bit 比特位。
    printf("%d \n",sizeof(short)); // 2   
    printf("%d \n",sizeof(int));  // 4个字节，32个bit位 2^32 - 1。
    printf("%d \n",sizeof(long));  // 4
    printf("%d \n",sizeof(long long)); // 4/8 c语言标准规定 sizeof(long) >= sizeof(int), 取决于平台
    printf("%d \n",sizeof(float));  // 4
    printf("%d \n",sizeof(double)); // 8
    printf("%d \n",sizeof(void)); //  output : 1
    printf("%d \n",sizeof(void *)); // output: 8
    return 0;
}